Skip to content

fix(doctor): match the pinned Claude registration id contract and accept versionless Cursor manifests - #243

Merged
ScriptedAlchemy merged 1 commit into
mainfrom
fix/doctor-followups
Sep 1, 2026
Merged

fix(doctor): match the pinned Claude registration id contract and accept versionless Cursor manifests#243
ScriptedAlchemy merged 1 commit into
mainfrom
fix/doctor-followups

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

Follow-up to #236 addressing the two Codex review findings, both verified against pinned evidence:

  • P1 — Claude registration proof matched loosely. containsPluginName recursively searched the plugin list --json output for any object with a matching name, which could false-positive on unrelated objects and missed the actual contract. Doctor now follows the pinned registration contract from tests/support/packed-native-smoke.ts: the output is a top-level array and a direct-loaded bundle is registered exactly when some entry has id === '<name>@inline'. A non-array shape is an honest AB7312 failure; a parsed array without the id stays AB7311 unregistered. Regression tests cover the name-only false positive and the wrapped-object shape.
  • P2 — versionless Cursor manifests misdiagnosed as corrupt. The pinned Cursor plugin schema (src/adapters/schemas/cursor/plugin.schema.json) requires only name; version is optional. readInstalledManifest now accepts a versionless manifest (a present-but-non-string version still invalidates the candidate), and the bundle version-collision branch only fires when the installed copy actually records a version — a versionless destination with differing content is drifted, not conflicted. Regression tests cover versionless-installed, non-string-version-corrupt, and drifted-not-conflicted.

Patch changeset included.

Test plan

  • pnpm lint — 0 errors, 0 warnings
  • pnpm typecheck
  • Scoped doctor + install suites: 43 passed, 0 failed
  • Full unit pool: 2,335 passed, 0 failed (an initial run had 4 failures in epoch-store/native-claude-contract/dispatcher; all pass in isolation and on rerun — known parallel-pool flakes untouched by this diff)

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-01T23:48:21.244532Z 566f90d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@changeset-bot

changeset-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 566f90d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
agent-bundle Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Sep 1, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle@243
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/create-agent-bundle@243
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/@agent-bundle/runtime@243

commit: 566f90d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant